package exam04redpacket;

import java.util.Random;

/*
抢红包也用到了多线程。
假设:100块，分成了3个包，现在有5个人去抢。
其中，红包是共享数据
5个人是5条线程。
打印结果如下
XXX抢到了XXX元
XXX抢到了XXX元
XXX抢到了XXX元
XXX没抢到
* */
public class MyThread extends Thread{
    static int num;
    static int money;
    static final int MIN = 1;

    public MyThread(String name) {
        super.setName(name);
    }

    @Override
    public void run() {
//        while (true){
            synchronized (MyThread.class){
                if (money <=0 || num <=0){
                    System.out.println(getName() + "没抢到" );
                    return;
                }
                int i = 0;
                if (num == 1){
                    i = money;
                }else{
                    Random random = new Random();
                    int bounds = money - (num - 1) * MIN;
                    i = random.nextInt(bounds);
                    i = Math.max(i, MIN);
                }
                num --;
                money -= i;
                System.out.println(getName() + "抢了" + i );
            }
//        }
    }
}
